The present disclosure relates to a method and system for identifying a cloud configuration used for deploying a software application. More specifically, a set of virtual machines, which is needed to satisfy the target performance in the cloud infrastructure, is determined by characterizing a performance of the application and a workload of candidate cloud infrastructures.
An optimal cloud configuration, i.e., a combination of virtual machines (VMs), is desired by cloud users that want to deploy a software application into a cloud infrastructure. One problem encountered by a cloud user that is purchasing virtual machines is a difficulty identifying a cloud configuration that enables the best performance of its web service. The task is challenging because cloud providers do not reveal their infrastructure configuration details, such as, for example, resource availability, and structure of physical servers, storages, network switches, and virtual machine management. Rather, these cloud providers only show a list of VM configurations and prices. Therefore, the cloud user is left to make a decision in a black-box environment.
The process of identifying the best cloud configuration can be expensive in the black-box environment. A cloud user provisions system resources to meet its throughput goals. The cloud user can over-provision in the black-box environment to reduce a risk of not meeting its throughput. Unnecessary over-provisioning can result in higher costs.
Due to the shortage of information, a cloud user can also explore candidate cloud configurations by deploying its complex application into each cloud configuration. The cloud user can measure its throughput in each cloud configuration to find the cloud provider that is offering the best price. However, the process of blindly exploring a number of different cloud configurations can be very expensive and time consuming. The deployment process is complicated when there are a number of different cloud configurations to be evaluated.
Therefore, a system and method are desired that compares black-box clouds and identifies the best cloud configuration for deploying a given application having certain throughput goals and price preferences.